package com.ruoyi.project.distribute.mapper;

import com.ruoyi.project.distribute.domain.HosDocumentLog;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 单据报单 数据库操作层
 */
public interface HosDocumentLogMapper
{
    /**
     *  创建单据报单信息
     *
     * @param hosDocumentLog 创建信息
     * @return 创建结果
     */
    int insertHosDocumentLog(HosDocumentLog hosDocumentLog);

    /**
     *  查询单据全部新消息
     *
     * @param hosDocumentLog 查询条件
     * @return 查询结果集合
     */
    List<HosDocumentLog> selectHosDocumentList(HosDocumentLog hosDocumentLog);

    /**
     * 根据单据ID和供应商ID查询 对应信息
     *
     * @param documentlogId 单据ID
     * @param provide  供应商ID
     * @return 查询结果
     */
    List<HosDocumentLog> selectHosDocumentLogByDocumentLogIdAndProvideId(@Param("documentlogId") String documentlogId, @Param("provideId") Long provide);

    /**
     * 根据供应商ID 和 申请人 查询单据报单表
     *
     * @param provideId 供应商ID
     * @param documentlogApply 申请人
     * @return 查询结果集合
     */
    List<HosDocumentLog> selectHosDocumentLogInAudit(@Param("provideId") Long provideId, @Param("documentlogApply") String documentlogApply);

    /**
     * 成功
     * 修改单据报单表 审核状态
     *
     * @param
     * @return
     */
    int updateHosDocumentLogAudit(@Param("documentlogId") String documentlogId , @Param("updateBy")String updateBy );

    /**
     * 失败
     * 修改单据报单表 审核状态
     *
     * @param documentlogId
     * @param updateBy
     * @return
     */
    int updateHosDocumentLogAuditError(@Param("documentlogId") String documentlogId , @Param("updateBy")String updateBy );

    /**
     * 提交 已审核
     * 修改单据报单表 审核状态
     *
     * @param documentlogId
     * @return
     */
    int updateHosDocumentLogAudited(@Param("documentlogId") String documentlogId, @Param("updateBy") String updateBy);

    /**
     * 提交 作废
     * 修改单据报单表 审核状态
     *
     * @param documentlogId
     * @return
     */
    int updateHosDocumentLogInvalid(String documentlogId);

    /**
     * 提交 入库成功
     * 修改单据报单表 审核状态
     *
     * @param documentlogId
     * @return
     */
    int updateHosDocumentLogSuccess(@Param("documentlogId") String documentlogId,@Param("createBy") String createBy);

    /**
     * 提交审核 待审核
     * 修改单据保单表 审核状态
     *
     * @param documentlogId
     * @return
     */
    int updateHosDocumentLogToAudit(String documentlogId);
}

